#include <func.h>

//子进程在被创建后，单独成立一个进程组，和父进程不在一个进程组,父亲依然可以回收子进程
int main()
{
    pid_t pid=fork();
    if(0==pid)//子进程
    {
        printf("I am child,%d,pgid=%d\n",getpid(),getpgid(0));
        setpgid(0,0);//成立一个新的进程组，进程组内只有自己，所以进程组id就是当前进程pid
        printf("I am child,%d,pgid=%d\n",getpid(),getpgid(0));
        return 1;
    }else{
        printf("I am parent %d,pgid=%d\n",getpid(),getpgid(0));
        wait(NULL);//回收子进程
        while(1);
        return 0;
    }
}